8.14 高级表格横向拼接-1(按索引关联)
本节pd.merge()是pd.join()的进阶版,设置更为灵活,结构:
pd.merge(left,right,how=’innor’,on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,suffixes=(“_x”,”_y”),copy=True,indicator=False,validate=None)
left :提供要做横向拼接的左表
right :提供要做模向拼接的右表。
how :左右两表拼接时的联接类型,分为left,right,outer,inner,默认为inner
on :要设置为连接键的列或索引级别名称,必须在两个表中都找到它们,如果on是None并且没有在索引上做拼接,那么将默认两个表表的交集
left_on :要在左表中连接的列或索引级别名称,也可以是左表长表的数组或数组列表,这些数组视为列。
right_on : 要在右表中连接的列或索引级别名称,也可以是右表长表的数组或数组列表,这些数组视为列。
left_index :使用左表中的索引作为连接健。如果是分层索引,则其他表中的键数(索引或列数)必须与级别数匹配
right_index :使用右表中的索引作为连接健。注意事项同上
sort :默认为False,将合并的数据进行排序
suffixes :给拼接后的左右两表相同列名添后缀,一种长序为2的序列,表示分别添加左表和右表相同列表的后缀。
import pandas as pd
df_l=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","分数表", index_col=0)
df_r=pd.read_excel( r "D:\Pyobject2023\object\测试\素材\1.8.14 高级表格横向拼接-1(按索引关联).xlsx","信息表", index_col=0)
print (df_l)
print (df_r)
df=pd.merge(left=df_l,
right=df_r,
left_index= True,
right_index= True,
suffixes=( "_L","_R" )
)
print (df)
返回:
姓名 | 部门 | 分数 | |
---|---|---|---|
工号 | |||
NED01 | 张三 | 销售部 | 99 |
NED03 | 王麻子 | IT部 | 97 |
NED05 | 小华 | 销售部 | 96 |
姓名 | 部门 | 籍贯 | |
---|---|---|---|
编号 | |||
NED01 | 张三 | 销售部 | 山东 |
NED02 | 李四 | 财务部 | 四川 |
NED03 | 王麻子 | IT部 | 湖南 |
NED04 | 小曾 | 销售部 | 上海 |
NED05 | 小华 | 销售部 | 北京 |
姓名_L | 部门_L | 分数 | 姓名_R | 部门_R | 籍贯 | |
---|---|---|---|---|---|---|
NED01 | 张三 | 销售部 | 99 | 张三 | 销售部 | 山东 |
NED03 | 王麻子 | IT部 | 97 | 王麻子 | IT部 | 湖南 |
NED05 | 小华 | 销售部 | 96 | 小华 | 销售部 | 北京 |